package com.ribbon;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * ribbon 随机负载均策略配置 （给每个提供者服务配置不同策略）
 * 注：想给每个提供者服务配置不同策略，必须放在启动类之外包，以防扫描，使所有提供方共享(意思就是会让所有提供者服务负载均衡均会走此策略)
 * 当前以代码方式实现 或者  使用配置文件配置
 * 以代码方式实现 启动类配置
 * @RibbonClients(value = {
 *         @RibbonClient(name = "stock-service",configuration = RibbonRandomRuleConfig.class)
 * })
 * @author viking
 */
@Configuration
public class RibbonRandomRuleConfig {

    /**
     * 方法名必须 叫iRule 才生效
     */
    @Bean
    public IRule iRule(){
        // 随机策略
        // 还有其他策略 比如 轮询 new RoundRobinRule()等等.. 具体看IRule的实现类
        return new RandomRule();
    }
}
